﻿namespace DatabaseGroup.SSIS.SourceAdapters.View
{
    /// <summary>
    /// Stores values related to the controls of the Editor's Audit tab
    /// </summary>
    public class AuditTabSettings : ITabSettings
    {
        /// <summary>
        /// Gets or sets if a log output should be included 
        /// on the component
        /// </summary>
        public bool IncludeLogOutput { get; set; }

        /// <summary>
        /// Gets or sets if the log output should include
        /// verbose validation messages
        /// </summary>
        public bool IncludeLogValidationMessages { get; set; }

        /// <summary>
        /// Gets or sets if the log output should include the
        /// source data that triggered the log row
        /// </summary>
        public bool IncludeLogSourceData { get; set; }

        /// <summary>
        /// Gets or sets the log source generic datatype to use
        /// for the source data output column
        /// </summary>
        public string LogSourceDataType { get; set; }

        /// <summary>
        /// Gets or sets the size of the source data for the log output
        /// </summary>
        public int LogSourceDataSize { get; set; }

        /// <summary>
        /// Gets or sets if the error output should include auditing columns
        /// </summary>
        public bool IncludeErrorAuditing { get; set; }

        /// <summary>
        /// Gets or sets if the error output should include
        /// verbose validation messages
        /// </summary>
        public bool IncludeErrorValidationMessages { get; set; }

        /// <summary>
        /// Gets or sets if the error output should include the
        /// source data that triggered the error row
        /// </summary>
        public bool IncludeErrorSourceData { get; set; }

        /// <summary>
        /// Gets or sets the error source datatype to use
        /// for the source data output column
        /// </summary>
        public string ErrorSourceDataType { get; set; }

        /// <summary>
        /// Gets or sets the size of the source data for the error output
        /// </summary>
        public int ErrorSourceDataSize { get; set; }
    }
}
